package principal.view.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.SpringLayout;
import javax.swing.border.TitledBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;

import principal.controller.CDatosKit;

import principal.model.ArticuloComponente;
import principal.model.vos.Articulo;
import principal.model.vos.Kit;


import principal.view.gui.altaComponente.AltaKitsMain;



public class DatosKit extends JPanel{
	AltaKitsMain kitMain;
	JPanel center = new JPanel();
    JPanel south = new JPanel();
    JPanel north = new JPanel();
    JPanel izqMain = new JPanel();
    JPanel derMain = new JPanel();
	JTextField  jfNombre;
    JTextField jfPrecio;
    JTextField jfTemporada; 
    JTextArea jtDesc;
    JTextField jfIdKit;    
	JButton agregarKit = new JButton("Agregar");
    DefaultTableModel modeloTabla = new DefaultTableModel();
	JTable tabla = new JTable(modeloTabla);	
    
	public DatosKit(AltaKitsMain kitMain){
		this.kitMain = kitMain;
		

        // el formulario usa GridBagLayout
        EasyForm form = new EasyForm(center);
        
        jfNombre= new JTextField(15);
        jfNombre.setEditable(false);
        jfNombre.setBackground(Color.WHITE);
        jfNombre.setEnabled(false);
        jfPrecio = new JTextField(15);
        jfPrecio.setEditable(false);
        jfPrecio.setBackground(Color.WHITE);
        jfPrecio.setEnabled(false);
        jfTemporada = new JTextField(15);
        jfTemporada.setEditable(false);
        jfTemporada.setBackground(Color.WHITE);
        jfTemporada.setEnabled(false);
        jtDesc = new JTextArea(3, 15);
        jtDesc.setLineWrap(true);
        jtDesc.setEnabled(false);                
        jfIdKit= new JTextField(15);
        jfIdKit.setEnabled(false);
        jfIdKit.setVisible(false);
        
        form.addField("Nombre del Kit",jfNombre );
        //form.addField(new JLabel("Id"), jfIdKit);
        form.addField("Descripcion", jtDesc);
        form.addField("Precio", jfPrecio);
        form.addField("Temporada", jfTemporada);
        
        
     // los botones usan BoxLayout        
        south.setLayout(new BoxLayout(south, BoxLayout.LINE_AXIS));
        
        south.add(Box.createHorizontalGlue()); // botones alineados a la derecha
        south.add(agregarKit);
        south.setBorder(BorderFactory.createEmptyBorder(5, 5, 2, 5));
        
        north.add(new JLabel("Datos del Kit!"));
        north.setBackground(Color.CYAN);
                       
        izqMain.setLayout(new BorderLayout());
        izqMain.add(south, BorderLayout.SOUTH);
        izqMain.add(center,BorderLayout.CENTER);
        
        add(izqMain);
        
       
	    
		tabla.setPreferredScrollableViewportSize(new Dimension(330,100));
		JScrollPane scrollTable = new JScrollPane(tabla);
		
		String NOMBRE = "Nombre";
	    String DESC = "Descripcion";
		String PRECIO = "Precio";
		String TEMP = "Temporada";
						
		modeloTabla.addColumn(NOMBRE);
	    modeloTabla.addColumn(DESC);
	    modeloTabla.addColumn(PRECIO);
	    tabla.setEnabled(false);
	    
	    
	    derMain.add(scrollTable);
  
        
		JPanel form2= new JPanel(new SpringLayout());	    
		form2.add(izqMain);
		form2.add(derMain);       	    	      
	    SpringUtilities.makeCompactGrid(form2, 1, 2, 6, 6, 6, 6);
	    add(form2);
	    
	    CDatosKit cDatosKit = new CDatosKit(this);
	    
	}
	
	public JTable getTablaDatos(){
		return this.tabla;
	}
	
    public JTextField getJfNombre() {
		return jfNombre;
	}

	public void setJfNombre(JTextField jfNombre) {
		this.jfNombre = jfNombre;
	}

	public JTextField getJfPrecio() {
		return jfPrecio;
	}

	public void setJfPrecio(JTextField jfPrecio) {
		this.jfPrecio = jfPrecio;
	}

	public JTextField getJfTemporada() {
		return jfTemporada;
	}

	public void setJfTemporada(JTextField jfTemporada) {
		this.jfTemporada = jfTemporada;
	}

	public JTextArea getJtDesc() {
		return jtDesc;
	}

	public void setJtDesc(JTextArea jtDesc) {
		this.jtDesc = jtDesc;
	}
	
	public JTextField getJfIdKit() {
		return jfIdKit;
	}

	public void setJfIdKit(JTextField jfIdKit) {
		this.jfIdKit = jfIdKit;
	}
	
	public void listenerAgregarKit(ActionListener listener){
		agregarKit.addActionListener(listener);
	}
	
	public AltaKitsMain getKitMain(){
		return kitMain;
	}
	
	public void alerta(){
		JOptionPane.showMessageDialog(null, "Seleccione un Kit","Informacion",
				JOptionPane.ERROR_MESSAGE);
	}

}
